import java.util.Scanner;

public class Test5 {
    public static void main(String[] args) {
        Scanner num = new Scanner(System.in);
        int n = num.nextInt();
        int[] nums = new int[n];
        for (int i = 0; i < n; i++) {
            nums[i] = num.nextInt();
        }
        int len = removeDuplicates(nums);
        //System.out.println(len);
        for (int i = 0; i <= len; i++) {
            System.out.print(nums[i] + " ");
        }
    }

    /**
     * 给你一个 升序排列 的数组 nums ，请你 原地 删除重复出现的元素，使每个元素 只出现一次 ，
     * 返回删除后数组的新长度。元素的 相对顺序 应该保持 一致 。
     * 要求：不要使用额外的空间，你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。
     *
     * @param nums
     * @return
     */
    public static int removeDuplicates(int[] nums) {
        int k = 0;
        //循环：k=0，i=1，如果 k 的值不等于 i 的值，那么 k 向后移动一位，并且将 i 的值赋值给 k
        //最后的个数为i+1
        for (int i = 1; i < nums.length; i++) {
            if (nums[k] != nums[i]) {
                k++;
                nums[k] = nums[i];
            }
        }
        return k;
    }
}
